Print system printing data while storing under compressed state, and printer for use therein

ABSTRACT

In a printing process with a print head having multiple dot formation elements for creating dots, an overlap printing technique that uses at least two dot formation elements for formation of each raster line requires a large memory capacity for storage of dot data. In a printing system of the invention, an image processing device takes charge of a former part of image processing and outputs intermediate data in a state requiring expansion into multiple pixels to a printing device. The printing device expands intermediate data including a target pixel, for which a dot on-off state is to be specified, and specifies the dot on-off state in the target pixel based on the intermediate data. Every time the dot on-off state is specified in each target pixel, intermediate data including the target pixel is expanded. This arrangement does not require the printing device to have a large storage capacity for the image processing. The printing device and the image processing device can thus effectively share the series of image processing, even when the printing device has a small storage capacity and low processing power.

TECHNICAL FIELD

The present invention relates to a technique of making an imagesubjected to a preset series of image processing and printing theprocessed image. More specifically the invention pertains to a techniqueof causing an image processing device and a printing device to share thepreset series of image processing and print the processed image.

BACKGROUND ART

Printing devices that create dots on a printing medium to print an imageare widely used as the output device of various imaging devices. Inthese printing devices, an image is divided into tiny areas calledpixels, and dots are created in these pixels. Such a printing devicetakes only either of two states, a dot-on state and a dot-off state, ineach pixel, but makes areas of dense dot creation and areas of sparsedot creation in the whole image. For example, in the case of creation ofblank ink dots on printing paper, areas of dense dot creation are darkareas and areas of sparse dot creation are bright areas. Adequateregulation of the density of dot creation according to the tone valuesof an object image gives a multi-tone printed image.

The following method is generally adopted in such a printing device tocreate dots at adequate densities according to the tone values of anobject image. The procedure first carries out a preset series of imageprocessing of an object image to be printed and converts image data intodata representing the dot on-off state in each pixel (hereafter referredto as ‘dot data’). The adequate image processing of the object imagegenerates dot data for creation of dots at the adequate densitiesaccording to the tone values of the image data. The procedure thensupplies the dot data representing the dot on-off state to the printingdevice. The printing device creates dots in the pixels according to thereceived dot data. This method enables dots to be created at adequatedensities according to the tone values of the image data and therebyprints a desired image.

This image printing method, however, takes a long time for transfer ofprocessed data with an increase in number of pixels included in theobject image. This prevents quick printing. With recent requirements forthe enhanced picture quality and the increased image size, the number ofpixels included in the image has been increasing. The high-speedprinting of an image accordingly has difficulties. This problem isdescribed, for example, in Japanese Patent Laid-Open Gazette No.2000-15716.

Dots are created on a printing medium, such as printing paper, by dotformation elements mounted on a print head, for example, by nozzles forejecting ink droplets. When a dot formation element has any deviation indot creation, for example, a deviation of the hitting position of inkdroplets for dot creation, raster lines formed by the dot creationelement are different from raster lines formed by the other dotformation elements. This causes, for example, the occurrence of banding,which gives white streaks to a resulting print. Recent printing deviceshave thus formed each raster line by at least two of the multiple dotformation elements mounted on the print head. In a printing device thatexecutes printing by forward and backward scans of the print headrelative to the printing medium, each raster line is completed bymultiple forward scans or backward scans. The procedure first uses onedot formation element to create dots at intervals (for example,alternately), shifts the relative position of the print head to theprinting medium, and then uses another dot formation element to fill theintervals between the previously created dots and complete a rasterline. This technique is called interlacing.

This technique of dot creation does not immediately use all thegenerated dot data but is required to store the dot data untilcompletion of each raster line. The print head has multiple dotformation elements at intervals of several dots, and the printing deviceoften adopts a technique of completing raster lines of a preset width bymultiple forward scans or backward scans of the print head (interlacingtechnique). Combination of the interlacing technique with theinterlacing technique drastically increases the quantity of dot data tobe stored. A large memory capacity is then required for storage of thelarge quantity of dot data.

An image processing device (typically a computer) and a printing devicemay share a series of image processing. The printing device mayalternatively carry out the whole series of image processing. In anycase, it is required to expand dot data corresponding to the dotformation elements and store the expanded dot data. A large storagecapacity is required for storing the dot data. In the case of combineduse of the image processing device and the printing device for imageprinting, the image processing device may take charge of generation ofdot data. The image processing device is typically actualized byexecution of an application program for image processing on thecomputer. In the case of printing an image, a printer driver isactivated to receive required data from the application program andgenerate data to be output to the printing device. When the computer hasa sufficient memory capacity, the printer driver may expand and store alarge quantity of dot data. This, however, undesirably increases thequantity of data transferred from the image processing device to theprinting device and extends the time for data transfer.

The object of the invention is thus to eliminate the drawbacks of theprior art techniques discussed above and to provide a technique thatreduces a required memory capacity for expansion of dot data and therebycarries out image processing with a high efficiency.

DISCLOSURE OF THE INVENTION

In order to attain at least part of the above and the other relatedobjects, the invention is directed to a printing system, which has aprint head with multiple dot formation elements for creating dots on aprinting medium and uses at least two dot formation elements of theprint head to print each raster line included in an image. The originalimage data are converted into converted data, which is in a form priorto expansion into dot data corresponding to the multiple dot formationelements and in a more compressed form than the dot data and is storedin a memory. The converted data stored in the memory are successivelyread out and are expanded into dot data for actuating the multiple dotformation elements. The dot formation elements are actuated according tothe dot data, so as to print an image. The technique of the inventionstores the image data in the compressed form, thus not requiring a largestorage capacity. The dot data are expanded from the compressed data andare used to actuate the dot formation elements. This arrangement thusreduces the capacity of the dot data.

In one preferable application, the printing system includes an imageprocessing device and a printing device, which efficiently share aseries of image processing. In this application, incorporation of therespective modules of the printing system in the image processing deviceand in the printing device is freely designed. For example, some imageprocessing like color conversion is carried out in outside of theprinting device. The processed data are stored in a compressed form in amemory of the printing device. The compressed data are expanded into dotdata to actuate the dot formation elements of the print head. Thetechnique of the invention is not restricted to the printing system butis also actualized by a printing device or a printing method.

One preferable embodiment of the invention temporarily accumulatesresults of specification of dot on-off state in respective target pixelsin the process of expansion of dot data, collects results of thespecification with regard to dots formed in at least one forward pass ora backward pass, among the accumulated results of the specification, andforms raster lines.

This arrangement ensures quick formation of raster lines and therebyquick printing of an image.

In any of the printing system, the printing device, and the printingmethod, one preferable procedure sets a target pixel, expands datacorresponding to the target pixel among the converted data stored in astate requiring expansion, and specifies the dot on-off state in thetarget pixel according to the expanded data.

This arrangement expands only the image data corresponding to the targetpixel and prevents useless expansion of the image data, thus effectivelysaving the storage capacity required for expansion.

In the printing system, the printing device, or the printing method thatrepeats forward and backward passes on the printing medium to createdots and form raster lines as arrays of dots so as to print an image,another preferable procedure sets a target pixel, expands data includingthe target pixel in unit of raster lines among the stored converteddata, and specifies the dot on-off state in the target pixel.

This arrangement readily specifies an object image data to be expanded,thus simplifying the processing executed by the printing device andspeeds up the processing.

The procedure of the invention may compress dot data obtained byhalftoning the original image data as the conversion into the converteddata.

In this application, multiple raster lines apart from one another by apreset interval are formed simultaneously. The procedure of formation ofmultiple raster lines specifies pixels included in the raster lines,expands dot data including the specified pixels, obtains dot datarepresenting the dot on-off state in the respective pixels, and createsdots according to the dot data, so as to print an image.

This arrangement stores the dot data in the compressed form and thusdoes not require a large storage capacity. In the printing systemincluding the image processing device and the printing device, even whenthe printing device does not have a high processing power, the imageprocessing device and the printing device can efficiently share theseries of image processing.

One preferable embodiment of the printing system or the printing deviceof the invention collects a preset number of multiple pixels in theimage into each pixel group and specifies a number of dots to be createdin each pixel group based on the image data, so as to obtain theconverted data, stores data representing the specified number of dots tobe created in each pixel group as the converted data, converts thestored data representing the specified number of dots into the dot data,and simultaneously stores the converted dot data at least once withrespect to M pixel sets included in each pixel group, where M is aninteger of not less than 2 but of less than N, which is a total numberof pixel sets included in the pixel group.

In the case of simultaneously generating dot data for all the pixels ina pixel group, since each raster line is formed in multiple forward andbackward passes, it is required to store dot data of many pixels for along time. This consumes an extremely large storage capacity. Storage ofdot data of only a corresponding pixel set in synchronism with a forwardor backward pass of the head, however, requires conversion of numberdata into dot data in each forward or backward pass of the head, thuslowering the conversion efficiency. The technique of the invention, onthe other hand, generates and stores dot data with regard to two or morepixel sets at least once in each pixel group. This arrangement does notstore dot data for all the pixel sets included in each pixel group andthus reduces the required storage capacity, while reducing the frequencyof conversion of number data into dot data in each pixel group and thuspreventing a decrease in conversion efficiency.

In the case of simultaneous storage of dot data with regard to multiplepixel sets, dot data of pixel sets other than a pixel set for immediatedot creation are to be stored until dot creation. This accordinglyrequires a storage capacity for storage of such dot data. Compared withstorage of dot data of all the pixel sets, this arrangement still savesthe required storage capacity.

The procedure for storage of dot data with regard to pixel groups mayconvert number data to generate dot data with regard to all the pixelsincluded in each pixel group and store only the dot data with regard topixels in selected pixel groups. The procedure may otherwise convertnumber data into dot data with regard to only pixels in selected pixelgroups and store the dot data.

The printing system may simultaneously store converted dot data withregard to at least multiple pixel sets where dots are successivelycreated in each pixel group.

When dot data of multiple pixel sets simultaneously stored are dot dataof pixel sets for sequential dot creation in the pixel group, which maynot be in direct succession, dot data are supplied to the headrelatively soon. This arrangement saves the storage capacity requiredfor storing the dot data.

The dot data of multiple pixel sets simultaneously stored may be dotdata of the following pixel sets. The procedure may supply dot data ofeach pixel set included in a pixel group to the head for dot creationand simultaneously store dot data with regard to last multiple pixelsets (all the pixel sets left in the pixel group at a preset time).

When only two pixel sets without conversion of dot data are left in thepixel group, storage of dot data with regard to these pixel setseliminates the requirement for storage of the number data with regard tothese pixel sets. Namely the storage capacity used for storage of thenumber data is now used to store dot data for two pixel sets. As clearlyunderstood, simultaneous conversion and storage of dot data with regardto the multiple pixel groups for which dots are lastly created in thepixel group desirably saves the storage capacity required for storingthe dot data.

In another preferable application, the printing system may convert thenumber data into the dot data to determine pixels for dot creationaccording to the specified number of dots to be created in the pixelgroup in an order of pixels having potential for dot creation in thepixel group.

Information on the order of pixels having potential for dot creation inthe pixel group, that is, information on the ordinal number of eachpixel for dot creation in the pixel group, desirably facilitatesgeneration of dot data according to the number of dots to be created inthe pixel group.

The technique of the invention is not restricted to the printing devicebut may be actualized by a corresponding printing method, as well as bya program that is incorporated in a printing device with a computer toattain the respective functions of the printing device and a recordingmedium in which such a program is recorded.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B show printing systems in modes of the invention;

FIG. 2 conceptually illustrates the construction of a computerfunctioning as an image processing device of an embodiment;

FIG. 3 conceptually illustrates the structure of a printer in theembodiment;

FIG. 4 shows an arrangement of nozzles formed in bottom faces of inkejection heads;

FIG. 5 shows a mechanism of ejecting ink droplets from nozzles undercontrol of a control circuit;

FIG. 6 is a flowchart showing an image processing routine executed inthe embodiment;

FIG. 7 shows an example of expansion of image data;

FIG. 8 shows another example of expansion of image data;

FIG. 9 conceptually shows a interlacing process;

FIG. 10 shows the outline of a conventional interlacing process as areference;

FIG. 11 shows the outline of a halftoning and interlacing processexecuted in the embodiment;

FIG. 12 conceptually shows the principle of specifying the dot on-offstate by dither method;

FIG. 13 is a flowchart showing a flow of the halftone and interlacingprocess of the embodiment;

FIG. 14 shows a printing system in one modified example;

FIG. 15 is a flowchart showing a process of generating control data andprinting an image (image printing routine) executed in a secondembodiment;

FIGS. 16A and 16B show a process of resolution conversion in the imageprinting routine;

FIG. 17 is a flowchart showing a flow of number data generation process;

FIG. 18 shows an example of a dither matrix;

FIG. 19 conceptually shows a process of specifying the dot on-off statein each target pixel by referring to the dither matrix;

FIGS. 20A and 20B conceptually show conversion of number data into dotdata;

FIG. 21 is a flowchart showing a flow of number data decoding process inthe embodiment;

FIG. 22 shows a process of carrying out sub-scan and forming each rasterline in multiple passes to print an image;

FIG. 23 shows an effective display area of an image;

FIG. 24 is a flowchart showing a flow of process of generating dot datafrom number data;

FIGS. 25A through 25E conceptually show a process of generating dot datafrom number data;

FIGS. 26A and 26B conceptually show one example of memory capacityrequired for storage of dot data generated by decoding number data inthe case of dot creation with repeated main scans of an ink ejectionhead; and

FIGS. 27A and 27B conceptually show another example of memory capacityrequired for storage of dot data generated by decoding number data inthe case of dot creation with repeated main scans of an ink ejectionhead.

BEST MODE OF CARRYING OUT THE INVENTION

In order to describe the functions and the effects of the inventionclearly, some modes of carrying out the invention are discussed below inthe following sequence:

-   -   A1. Mode of Carrying Out the Invention—1    -   A2. Mode of Carrying Out the Invention—2    -   B. Construction of Device in Embodiment    -   C. General Flow of Image Processing in First Embodiment    -   D. Halftoning and Interlacing Process    -   E. Modification    -   F. General Flow of Image Processing in Second Embodiment    -   G. Number Data Generation Process    -   H. Number Data Decoding Process

A1. Mode of Carrying Out the Invention—1

Prior to detailed description of embodiments, two modes of carrying outthe invention are briefly described for the better understanding. FIG.1A shows the configuration of a printing system in a first mode of theinvention. The printing system includes a computer 10A functioning as animage processing device and a printer 20A functioning as a printingdevice. Image data are subjected to a preset series of image processingfor output of an image generated by the computer 10A from the printer20A. In the printing system of the first mode, the computer 10A and theprinter 20A share the preset series of image processing.

The computer 10A generally expresses an image as RGB image data of threeprimary colors R, G, and B, whereas the printer 20A prints an image withinks mounted thereon. Conversion of RGB image data into datarepresenting the quantities of the respective inks is thus required toprint an image generated by the computer. In the printing system of FIG.1, a color conversion module included in the computer 10A takes chargeof this part of image processing. Namely the computer 10A carries outthe color conversion process. The details of the color conversionprocess will be discussed later. The computer 10A also has anintermediate data transfer module, which functions to transferintermediate data generated as a result of the image processing by thecomputer 10A to the printer 20A. In order to shorten the time requiredfor transfer, the intermediate data are transferred in a specific formthat requires the printer 20A to expand the transferred intermediatedata to multiple pixels.

The intermediate data transferred to the printer 20A are stored in thisspecific form that requires later expansion into an intermediate datastorage module. The printer 20A makes the stored data subjected to aresidual series of image processing and supplies resulting data to aprint head. The print head creates ink dots on a printing mediumaccording to the supplied resulting data, so as to print an image. Theintermediate data transferred from the computer 10A to the printer 20Aare not in a dot expressing form to express an image with dots. It isthus required to convert the intermediate data into data in the dotexpressing form. The order of dot creation by the print head may not beidentical with the storage order of the data in the printer 20A. Anadditional process may thus be required to rearrange the order of thedata. In the printing system shown in FIG. 1, the printer 20A has ahalftoning and Interlacing module, which takes charge of such requiredprocessing. On completion of the required processing, resulting data aresupplied to the print head for printing an image.

As mentioned above, the intermediate data are stored in the specificform that requires the printer 20A to expand the intermediate data tomultiple pixels. The halftoning and interlacing module reads theintermediate data corresponding to a target pixel as a processingobject, expands the intermediate data, and makes the target pixelsubjected to a predetermined series of image processing. On completionof the conversion with regard to one pixel, the halftoning andinterlacing module reads the intermediate data corresponding to a nexttarget pixel, expands the intermediate data, and makes the next targetpixel subjected to the predetermined series of image processing. Thisprocedure is repeated for all the pixels as the processing object. Thisarrangement enables most part of the intermediate data to be stored inthe non-expanding manner in the printer 20A, while the intermediate dataas the processing object is expanded. The printer 20A accordingly doesnot require a large storage capacity. The storage capacity of theprinter 20A thus does not restrict the image processing, so that thecomputer 10A and the printer 20A can effectively share the requiredseries of image processing.

A2. Mode of Carrying Out the Invention—2

Another mode of carrying out the invention is briefly described withreference to FIG. 1B. The printing system shown in FIG. 1B includes acomputer 10B functioning as an image processing device and a printer 20Bfunctioning as a printing device of the invention. A predeterminedprogram is loaded to and executed by the computer 10B, and the computer10B and the printer 20B integrally function as the printing system. Theprinter 20B has a head 22B to eject small ink droplets. Adequateejection of ink droplets from the head 22B onto a printing medium formsink dots at arbitrary positions on the printing medium. The printer 20Btakes advantage of this function and ejects ink droplets on the printingmedium while moving the head 22B back and forth, so as to create inkdots in a desired distribution and thereby print a resulting image onthe printing medium. Since the printer 20B creates ink dots to print adesired image, a preset series of image processing is required inadvance to convert image data into data representing formation andnon-formation of dots in respective pixels of the image. The computer10B, which is separate from the printer 20B, generally takes charge ofsuch image processing. The resulting processed data are supplied fromthe computer 10B to the printer 20B for printing an image.

In the printing system that uses the computer 10B to execute imageprocessing and supply resulting data to the printer 20B for printing animage, an increase in number of pixels to increase in volume of imagedata undesirably extends the required time for supply of the data to theprinter 20B. This prevents quick printing of an image. The computer 10Bincluded in the printing system of FIG. 1B collects a preset number ofpixels into one pixel group, specifies the number of dots to be createdin the pixel group, and supplies number data representing the specifiednumber of dots to the printer 20B. A dot number specification module 12Bshown in FIG. 1B executes a preset series of image processing of anobject image to be printed, so as to specify the numbers of dots to becreated in the respective pixel groups.

A frame of one-dot chain line shown in the vicinity of the dot numberspecification module 12B conceptually shows a process of specifying thenumbers of dots to be created in respective dot sets. Each small squirein the frame represents a pixel, and a closed circled in a pixel showsthat a dot is to be created in the pixel. The pixels, in which dots areto be created, are determined by applying a known image processingmethod, such as error diffusion method or dither method, to image data.The dot number specification module 12B shown in FIG. 1B collects twocolumns and two rows of pixels, that is, four pixels, into one pixelgroup and specifies the number of dots to be created in the pixel group.For example, in the frame of one-dot chain line, the specified number ofdots to be created is 1 in a left most pixel group, 0 in a second leftpixel group, and 2 in a right most pixel group. A number data outputmodule 14B outputs the number of dots to be created in each pixel groupas number data to the printer 20B. Compared with the structure ofoutputting the dot on-off state in each pixel, this arrangement ofoutputting the number of dots to be created in each pixel groupdesirably reduces the total quantity of data, thus ensuring quick supplyof data to the printer 20B.

The printer 20B converts the received number data into dot datarepresenting the dot on-off state in each pixel and drives the head 22Baccording to the converted dot data, so as to print an image. Theprinter 20B shown in FIG. 1B does not immediately convert the numberdata received from the computer 10B into the dot data representing thedot on-off state in each pixel, but once stores the received number datainto a buffer memory 24B. The printer 20B successively converts thenumber data into the dot data representing the dot on-off state in eachpixel with the movement of the head 22B, which reciprocates on aprinting medium to create dots, and drives the head 22B with theconverted dot data to print an image. A dot data storage module 26Bconverts the number data into the dot data, stores the converted dotdata, and supplies the stored dot data to a head actuation module 28Bwith the reciprocating motions of the head 22B, so as to drive the head22B and create dots at adequate positions on the printing medium. Thedot data storage module 26B has a pixel set detection unit, whichdetects pixel sets, each consisting of multiple pixels for dot creation,in every reciprocating motion of the head 22B. A number data conversionunit included in the dot data storage module 26B converts the numberdata into dot data and stores the dot data regarding the respectivepixels included in each pixel set into a dot data storage memory. Thestored dot data with regard to the respective pixel sets are supplied tothe head actuation module 28B to print an image on the printing medium.

In the process of storing the dot data into the dot data storage memory,a plural number of pixel sets, which is smaller than the total number ofpixel sets included in each pixel group, are converted into dot data andstored at least once with regard to each pixel group. This arrangementdesirably reduces the required storage capacity of the dot data storagememory, compared with the structure of converting all the pixel setsincluded in each pixel group into dot data. This arrangement requiresconversion of the number data into dot data at a greater frequency thanthe structure of converting all the pixel sets into dot data. But theconversion frequency in this arrangement is still less than thefrequency of conversion of the number data into dot data in eachreciprocating motion of the head 22B. The arrangement of this mode thusensures quick printing of an image, while desirably reducing therequired storage capacity of the memory mounted on the printer 20B. Theprinting systems and the printers in these modes are described in detailas preferred embodiments.

The discussion first regards the printing system in one embodiment ofthe invention.

B. Construction of Device in Embodiment

FIG. 2 illustrates the structure of a computer 100 functioning as animage processing device in this embodiment. The computer 100 has a knownstructure and includes a CPU 102, a ROM 104, and a RAM 106, which aremutually connected via a bus 116. The computer 100 has a disk controllerDDC 109 for reading data from a flexible disc 124 and a compact disc126, a peripheral equipment interface P-I/F 108 for transmitting data toand from peripheral equipment, and a video interface V-I/F 112 foractuating a CRT 114. A hard disk 118 and a color printer 200 discussedlater are connected with the P-I/F 108. Connection of a digital camera120 or a color scanner 122 to the P-I/F 108 enables an image taken fromthe digital camera 120 or the color scanner 122 to be printed.Attachment of a network interface card NIC 110 to the computer 100causes the computer 100 to connect with a communication line 300 andobtain data stored in a storage device 310 on the communication line300.

FIG. 3 schematically illustrates the structure of the color printer 200in the first embodiment. The color printer 200 is an inkjet printer thatis capable of creating four color ink dots, cyan, magenta, yellow, andblack. The color printer 200 may alternatively be an inkjet printer thatis capable of creating six color ink dots including cyan ink having alow dye density (light cyan ink) and magenta ink having a low dyedensity (light magenta ink), in addition to the above four color inks.In the description below, cyan ink, magenta ink, yellow ink, and blackink are referred to as C ink, M ink, Y ink, and K ink.

As illustrated, the color printer 200 has a mechanism of actuating aprint head 241 mounted on a carriage 240 for ink ejection and dotcreation, a mechanism of activating a carriage motor 230 to move thecarriage 240 back and forth along an axis of a platen 236, a mechanismof activating a paper feed motor 235 to feed printing paper P, and acontrol circuit 260 that controls dot creation, the motions of thecarriage 240, and the feed of the printing paper P.

An ink cartridge 242 for receiving K ink therein and an ink cartridge243 for receiving C, M, and Y inks therein are mounted on the carriage240. When the ink cartridges 242 and 243 are attached to the carriage240, inks in the ink cartridges run through ink conduits (not shown) andare supplied to ink ejection heads 244 through 247 for the respectivecolors formed on the bottom face of the print head 241. The ink ejectionheads 244 through 247 of the respective colors eject ink droplets of thesupplied inks to create ink dots on the printing medium.

The control circuit 260 includes a D-A converter 262 that convertsdigital data into analog signals and a drive buffer 261 that temporarilystores data to be supplied to the print head 241, in addition to a CPU,a ROM, a RAM, and a peripheral equipment interface P-I/F. The controlcircuit 260 may alternatively have no CPU but actualize these functionsby the hardware or firmware construction. The control circuit 260controls the operations of the carriage motor 230 and the paper feedmotor 235 to regulate main scanning motions and sub-scanning motions ofthe carriage 240. The control circuit 260 also drives the print head 241at adequate timings corresponding to the main scanning motions and thesub-scanning motions of the carriage 240. The print head 241 is driven,in response to supply of a drive signal from the D-A converter 262 andcontrol data from the drive buffer 261. The mechanism of supplying thedrive signal and the control data to eject ink droplets will bediscussed later with reference to a drawing. Under the control of thecontrol circuit 260, ink droplets are ejected from the ink ejectionheads 244 through 247 of the respective colors at adequate timings tocreate ink dots and print a color image on the printing paper P.

Any of diverse methods may be applied to eject ink droplets from the inkejection heads of the respective colors. One applicable method usespiezoelectric elements for ink ejection. Another applicable method usesheaters that are located in ink conduits and are actuated to producebubbles in the ink conduits for ejection of ink droplets. The techniqueof this embodiment is not restricted to the ink ejection-type printersbut may also be applied to printers that take advantage of thermaltransfer to create ink dots on a printing medium and printers that takeadvantage of static electricity to make respective color toners adhereon a printing medium.

FIG. 4 shows multiple nozzles for ejecting ink droplets, which areformed on the bottom faces of the ink ejection heads 244 through 247 ofthe respective colors. As illustrated, four nozzle arrays for ejectingrespective color ink droplets are formed on the bottom faces of the inkejection heads of the respective colors. Each nozzle array includes 48nozzles Nz, which are arranged in zigzag at intervals of a nozzle pitchk. These nozzles simultaneously eject ink droplets, in response to thedrive signal and the control data supplied from the control circuit 260,as discussed below with reference to FIG. 5.

FIG. 5 conceptually shows the ink ejection heads 244 through 247 toeject ink droplets in response to the drive signal and the control data.As shown in FIG. 4, the multiple nozzles Nz are formed in the bottomface of each ink ejection head and are respectively connected withspecified areas allocated on the drive buffer 261. The drive signaloutput from the D-A converter 262 is simultaneously supplied to all thenozzles Nz.

Each of the ink ejection heads 244 through 247 ejects ink droplets inthe following manner. The ink ejection head first selects nozzles, whichare expected to eject ink droplets, and writes data representing resultsof the selection in the drive buffer 261. As mentioned above, all thenozzles are respectively related to the specified areas on the drivebuffer 261. When a nozzle is selected to eject an ink droplet, data ‘1’is written in the specified area corresponding to the nozzle. When anozzle is not selected, data ‘0’ is written in the specified areacorresponding to the nozzle. The data written in the drive buffer 261are output as control data to the ink ejection heads 244 through 247.The D-A converter 262 outputs a drive signal synchronously with outputof the control data from the drive buffer 261. The output drive signalis supplied to all the nozzles but drives only the nozzles selectedaccording to the control data. The nozzles that are selected to ejectink droplets and have the setting of the data ‘1’ in the correspondingareas in the drive buffer 261 simultaneously eject ink droplets.

The control circuit 260 shown in FIG. 3 sets the control data forcontrolling ejection of ink droplets in the drive buffer 261 andsuccessively outputs drive signals synchronously with the main scanningmotions and the sub-scanning motions of the carriage 240. Ink dropletsare thus formed at adequate positions to print an image on the printingpaper P.

C. Outline of Image Processing

This embodiment has the hardware structure discussed above and executesa series of image processing discussed below. The control data used forcontrolling ejection of ink droplets in this embodiment are generatedthrough a preset series of image processing of an object image to beprinted. FIG. 6 is a flowchart showing a flow of image processingexecuted in the printing system of this embodiment. In the structure ofthis embodiment, the computer 100 and the color printer 200 share thisseries of image processing. The outline of image processing is describedbriefly with reference to FIG. 6. This series of image processingcorresponds to the mode 1 shown in FIG. 1A.

The image processing routine first reads image data of an object imageto be printed (step S100). The image data read here are RGB color imagedata, that is, image data having 256 tone widths of a tone value 0 to atone value 255 with respect to R, G, and B colors.

The image processing routine then carries out color conversion of theinput image data (step S102). The color conversion process converts RGBcolor image data expressed by combinations of R, G, and B tone valuesinto image data expressed by combinations of tone values of respectivecolors used for printing. As mentioned previously, the printer 200 usesfour color inks C, M, Y, and K to print an image. The color conversionprocess of this embodiment thus converts image data expressed by tonevalues of R, G, and B colors into data expressed by tone values of C, M,Y, and K colors. The color conversion process refers to athree-dimensional numerical table called a color conversion table (LUT).The mapping of the tone values of C, M, Y, and K colors to the RGB colorimage data is stored in advance in the LUT. The reference to this LUTthus ensures quick color conversion. In this example, the RGB image datahaving 256 tones are converted into CMY tone data having 256 tones.

After the color conversion process, intermediate data thus generated aretransferred to the color printer 200 (step S104). In this embodiment, inorder to shorten the required time for transfer, the computer 100transfers the intermediate data in a state requiring expansion in thecolor printer 200. The terminology ‘state requiring expansion’ isdescribed below.

In the printing system of this embodiment, the printing resolution ofdot creation on the printing medium by the color printer 200 is sethigher than the resolution of an image processed in the computer 100.FIG. 7 shows the settings of resolutions in this embodiment. While theresolution of image data processed in the computer 100 is 720 dpi (720pixels per inch), the printing resolution of the color printer 200 isset to 1440 dpi (1440 pixels per inch). Each large square on the upperrow in FIG. 7 represents a pixel in the resolution of 720 dpi. In theprocess of converting the resolution into 1440 dpi, each pixel in theresolution of 720 dpi is divided into two in both the vertical andhorizontal directions, so that four pixels are generated from one pixel.

The lower row in FIG. 7 conceptually shows division of each pixel intofour pixels. A pixel ‘a’ in the resolution of 720 dpi is divided intofour pixels ‘a1’, ‘a2’, ‘a3’, and ‘a4’ by conversion of the resolutioninto 1440 dpi. Similarly a pixel ‘b’ in the resolution of 720 dpi isdivided into four pixels ‘b1’, ‘b2’, ‘b3’, and ‘b4’ by conversion of theresolution into 1440 dpi. In this embodiment, the image data ofresulting four pixel pixels in the resolution of 1440 dpi are identicalwith the image data of each pixel in the resolution of 720 dpi prior tothe division. One modified procedure may not simply divide each pixelwith identical image data but may perform interpolation betweenadjoining pixels.

One example of such modification is described with reference to FIG. 7.The image data of the pixels ‘a1’ and ‘b1’ are identical with the imagedata of the pixels ‘a’ and ‘b’ prior to the division. The image data ofthe pixel ‘a2’ is obtained by interpolating the image data of the pixels‘a’ and ‘b’. The image data of the pixel ‘a3’ is obtained byinterpolating the image data of the pixel ‘a’ and the image data of apixel below the pixel ‘a’. The image data of the pixel ‘a4’ is obtainedby interpolating the image data of the pixel ‘a’ and the image data of apixel located on the lower right of the pixel ‘a’.

Another modified procedure may selectively use the two methods, that is,the simple division of a pixel with identical image data and theinterpolation, according to the variation in image data betweenadjoining pixels (for example, between the pixels ‘a’ and ‘b’). Forexample, the procedure simply divides a pixel when the absolute value ofthe variation is not less than a preset level, while carrying out theinterpolation when the absolute value of the variation is less than thepreset level. It is expected that a part having a large absolute valuein variation corresponds to an edge in an image. The procedure appliesnot the interpolation but the simple division of a pixel to this part,so as to keep the sharp edge. A part having a small absolute value invariation between adjoining pixels, on the other hand, is subject to theinterpolation. This causes a smooth variation in tone value of the imagedata, thus ensuring an image of natural touch.

The ‘state requiring expansion’ is, for example, the state prior toconversion of the image data in the lower resolution into image data inthe higher resolution, that is, the state prior to division of eachpixel. In the description above, the higher resolution is twice thelower resolution. This is, however, only illustrative and notrestrictive at all. For example, the higher resolution may not be anintegral multiple of the lower resolution.

The ‘state requiring expansion’ may be a compressed state of image dataas discussed below. FIG. 8 shows run length compression of image data asone example. The run length compression is a technique of expressing aconsecutive part of data having an identical numerical value by theconsecutive number of values and the identical numerical value of theconsecutive part of the data, thereby implementing compression.

As an example, data shown in FIG. 8( a) is subjected to the run lengthcompression. The illustrated data consists of 15 numerical values, wherethe 3^(rd) to 7^(th) numerical values are consecutively an identicalvalue ‘21’. Here each numerical value is expressed by 1 byte. The runlength compression replaces this consecutive part of data with acompression flag representing the state of compression, the consecutivenumber of values (five), and the identical numerical value (thenumerical value 21). Each residual part of the data with no successionof an identical value is not subject to such compression but has thecompression flag representing the state of no compression on the head.

FIG. 8( b) shows such rules of conversion in the run length compression.Data of FIG. 8( c) are obtained by run length compression of the datashown in FIG. 8( a) according to these rules. The 1^(st) numerical valueand the 2^(nd) numerical value are ‘12’ and ‘15’ in the original datashown in FIG. 8( a). This part is thus not compressed, and a 1-bitcompression flag is placed before each numerical value. The compressionflag is set equal to ‘0’ to represent the state of no compression. The3^(rd) to the 7^(th) numerical values are consecutively identical in theoriginal data. This part is thus converted into the compression flag,‘5’ representing the consecutive number of values, and ‘21’ representingthe identical numerical value. The compression flag is set equal to ‘1’to represent the state of compression. Such conversion compresses 5bytes of the original data into the 2-byte data and the 1-bitcompression flag. In FIG. 8( c), the compression flag set to ‘0’ isexpressed as blank, while the compression flag set to ‘1’ is filled inblack. This conversion compresses 15-byte data of FIG. 8( a) into12-byte data. When the compressed data of FIG. 8( c) are transferred,the data are expanded to the data of FIG. 8( a).

The ‘state requiring expansion’ includes the compressed state of imagedata as described above. The ‘state requiring expansion’ may be acombined state, that is, a compressed state of image data in a lowresolution. The above description regards the run length compression ofimage data, but this is not restrictive at all. Any other known methodmay be applied to compression of image data.

At step S104 in the flowchart of FIG. 6, the color-converted image dataare transferred in the state requiring expansion to the color printer200.

The color printer 200 stores the transferred intermediate data in thestate requiring expansion and makes the stored intermediate datasubjected to a halftoning and interlacing process (step S106). Theintermediate data transferred from the computer 100 have gone throughthe color conversion and been converted into tone data representing thequantities of inks, but still have 256 tones. The color printer 200, onthe other hand, takes only the state of ‘dot creation’ or the state of‘no dot creation’. It is accordingly required to convert the tone datahaving 256 tones into data expressed by the state of dot creation or thestate of no dot creation. This process is generally called halftoningprocess. Any of diverse methods, such as error diffusion method anddither method, may be applied to the halftoning process.

Because of the reasons discussed below, the ink ejection head does notcreate dots in the alignment order of pixels. It is accordingly requiredto rearrange the data expressed by the state of dot creation or thestate of no dot creation in the order of actual dot formation. Here thisprocess is called interlacing process. The halftoning and interlacingprocess at step S106 in the flowchart of FIG. 6 integrally carries outthe halftoning process and the interlacing process. The details of thehalftoning and interlacing process will be described later.Supplementary explanation of the interlacing process is given here.

As described above with reference to FIG. 4, the nozzles Nz are formedat the intervals of the nozzle pitch k in the bottom faces of the inkejection heads 244 through 247. The main scan of the ink ejection headand simultaneous ejection of ink droplets from the respective nozzles toform multiple raster lines accordingly cause gaps between adjoiningraster lines. The sub-scan is carried out by a preset quantity to fillthe gaps between the raster lines. This process is conceptually shown inFIG. 9.

FIG. 9 shows sub-scans of the ink ejection head to fill the gaps betweenadjoining raster lines. The left side of the drawing shows thesub-scanning position of the ink ejection head, and the right side ofthe drawing shows formation of raster lines according to the headposition. In the actual sub-scan, the printing paper is moved relativeto the head. For convenience of explanation, here it is assumed that thehead is moved relative to the stationary printing paper. As describedpreviously with reference to FIG. 4, the four ink ejection heads 244through 247 are mounted in alignment on the print head. Only one inkejection head is, however, shown in FIG. 9 for the simplicity ofillustration. The 48 nozzles are actually formed at the intervals of thenozzle pitch k on the bottom face of the ink ejection head. For thesimplicity of illustration, however, only four nozzles Nz are formed atthe intervals of a nozzle pitch 3.

The main scan of the head at the top head position shown in FIG. 9ejects ink droplets from the nozzles Nz to form four raster linescorresponding to the number of the nozzles Nz. The four raster linesformed here are shown by the solid line and are expressed by No. 1. Thenozzles are arranged at the intervals of the nozzle pitch 3 in thisillustrated example. There is a gap between adjoining raster linescorresponding to this nozzle pitch. The head is thus sub-scanned by aquantity corresponding to 4 raster lines to form other raster lines andfill the gaps as shown by the arrow. The rectangle of broken line inFIG. 9 shows the head position by this sub-scan. The main scan of thehead at this head position ejects ink droplets to form four rasterlines, which are shown by the broken line and are expressed by No. 2. Asshown in FIG. 9, the raster lines shown by the broken line are formedbetween the raster lines shown by the solid line. There is, however,still a gap between adjoining raster lines. The head is againsub-scanned. The rectangle of one-dot chain line in FIG. 9 shows thehead position by this sub-scan. Four raster lines formed at this headposition are shown by the one-dot chain line and are expressed by No. 3.As shown in FIG. 9, formation of the raster lines shown by the one-dotchain line fills the gap between adjoining raster lines.

As described above, the nozzles are arranged at the intervals of thenozzle pitch k (3 in the illustrated example of FIG. 9). Each main scanof the head forms a gap between adjoining raster lines corresponding tothe nozzle pitch. Sub-scans of the head by an adequate quantity andsubsequent (k−1) main scans form raster lines to leave no gap betweenadjoining raster lines. This method of sub-scan to fill a gap betweenadjoining raster lines and thereby form raster lines with no gap iscalled ‘interlacing’. When each ink ejection head has N nozzles arrangedat intervals of a nozzle pitch k, N and k are set to have no commondenominator other than 1 (here N and k are relatively prime to eachother). The quantity of sub-scan is N raster lines corresponding to thenumber of nozzles. In the case of interlacing, the ink ejection headcreates dots and forms raster lines in an order different from thealignment order of pixels.

In the illustrated example of FIG. 9, each raster line is formed by onemain scan. One raster line may alternatively be formed by multiple mainscans. For example, dots in pixels of odd ordinal numbers and dots inpixels of even ordinal numbers may be formed by different main scans.This stabilizes the resulting picture quality, as is known in the art.In the illustrated example of FIG. 9, sub-scan of the head is carriedout by a quantity corresponding to four raster lines. Sub-scan of thehead by a quantity corresponding to two raster lines causes nozzles topass through the position of each raster line twice. The first scan, forexample, creates dots in the pixels of odd ordinal numbers, and thesecond scan creates dots in the pixels of even ordinal numbers.Formation of each raster line by multiple main scans is called the‘interlacing’ technique. In the case of interlacing, the ink ejectionhead creates dots in an order different from the alignment order ofpixels.

For the enhanced printing speed, dots may be created in both forward andbackward passes of the head. Creation of dots in both forward andbackward passes is called ‘bi-directional printing’. In the case ofbi-directional printing, the ink ejection head creates dots in an orderdifferent from the alignment order of pixels.

The interlacing process rearranges the halftoning-processed data in theorder of actual dot creation by the ink ejection head, according toexecution of the interlacing, interlacing, and bi-directional printing.The halftoning and interlacing process of the embodiment at step S106 inthe flowchart of FIG. 6 integrally executes the halftoning process andthe interlacing process as discussed later.

After the halftoning and interlacing process, the resulting data areoutput to the drive buffer 261 and are supplied from the drive buffer261 to the print head 241 according to the motions of the carriage 240(step S108 in the flowchart of FIG. 6). The mechanism described abovewith reference to FIG. 5 causes nozzles to simultaneously eject inkdroplets and print an image on the printing paper.

As described above, the printing system of the embodiment stores theintermediate data, which is transferred in the state requiring expansionfrom the color printer 200, in the state requiring expansion. Theprinting system executes the halftoning and interlacing process(described below) of the intermediate data stored in the state requiringexpansion. The image processing executed by the color printer 200accordingly does not require a large storage capacity. Even the limitedstorage capacity of the color printer 200 thus does not make anyrestrictions. The color printer 200 and the computer 100 effectivelyshare the series of image processing, because of the reasons discussedbelow.

D. Halftoning and Interlacing Process

The following describes the details of the halftoning and interlacingprocess executed in this embodiment. For the better understanding, thestandard interlacing process is explained briefly first.

FIG. 10 conceptually shows a interlacing process of halftoning-processedimage data as a reference example. The procedure of the embodimentintegrally executes the halftoning process and the interlacing processof the intermediate data stored in the state requiring expansion. Thestandard interlacing process shown in FIG. 10 as the reference is,however, carried out for the halftoning-processed image data.

The image data, which have gone through the halftoning process to beconverted into an expression form representing the state of dot creationor the state of no dot creation in each pixel, are stored in a RAM in aprinter. Adequate data are selected among the stored image data in anorder of dot creation by nozzles and are transferred to a drive buffer.The data transferred to the drive buffer are supplied as control data tothe respective nozzles at adequate timings synchronously with the mainscan and the sub-scan of the head. As described previously withreference to FIG. 5, ink droplets are simultaneously ejected from thenozzles according to the control data, so as to print an image. For thesimplicity of explanation, it is here assumed that only the interlacingtechnique is adopted and that neither the interlacing technique nor thebi-directional printing technique is applied.

In the illustrated example of FIG. 10, the head has four nozzlesarranged at the intervals of a nozzle pitch 3. The main scan of the headfor ink ejection thus simultaneously forms four raster lines, which areapart from each other by a distance corresponding to two raster lines.For the main scan of the head, the image data corresponding to fourraster lines mutually apart by two raster lines are selected among theimage data stored in the RAM and are transferred to the drive buffer.For example, the main scan of the head at a position A in FIG. 10selects image data corresponding to four raster lines filled with slantlines among the stored image data and supplies the selected image datato the drive buffer. Until the selected data are output to the drivebuffer, at least image data in an area fat including the image datafilled with slant lines are to be stored in the RAM of the printer.Similarly for the main scan of the head at a position B, until output ofimage data of corresponding raster lines to the drive buffer, at leastimage data in an area ‘b’ are to be stored in the RAM.

For the simplicity of the illustration, the ink ejection head of FIG. 10has only four nozzles arranged at the intervals of the nozzle pitch 3.The actual ink ejection head, however, has many more nozzles arranged atthe intervals of a nozzle pitch k that is greater than 3. An extremelylarge quantity of data is thus to be stored in the RAM at least untiloutput of the image data to the drive buffer. The storage capacity ofthe printer is generally smaller than the storage capacity of thecomputer. The requirement of such large storage capacity in the printermay prevent the printer and the computer from effectively sharing theseries of image processing. The halftoning and interlacing process ofthe embodiment described below, on the other hand, does not require theprinter to have a large storage capacity and thus enables the printerand the computer to effectively share the series of image processing.

FIG. 11 shows the outline of the halftoning and interlacing processexecuted in this embodiment. In the halftoning and interlacing process,data representing raster lines to be formed by nozzles in the main scanare stored once in the drive buffer 261 and are output as control datafrom the drive buffer 261 to the respective nozzles in the ink ejectionhead. The halftoning and interlacing process is executed by a halftoningand interlacing module constructed in the control circuit 260 of thecolor printer 200. This module first sets an object pixel, for whichdata are to be transferred to the drive buffer 261, as a target pixel.The module subsequently reads corresponding intermediate data among theintermediate data stored in the state requiring expansion in the RAM,expands the corresponding intermediate data, and specifies the doton-off state in the target pixel, based on the expanded data. Thehalftoning operation specifies the dot on-off state in each pixel, basedon image data. In the illustrated example of FIG. 11, the image datatransferred at a resolution of 720 dpi are expanded to data at aresolution of 1440 dpi, prior to printing. The halftoning andinterlacing module thus expands image data corresponding to one pixelstored in the RAM into image data corresponding to four pixels. A pixelwith a slanted circle among the four expanded pixels in the modulerepresents a target pixel.

The dither method, for example, may be applied to specify the dot on-offstate. As shown in FIG. 12, the dither method compares the image data ofeach target pixel with a threshold value set at a corresponding positionin a dither matrix. When the image data is greater than the thresholdvalue, the method specifies a dot-on state in the target pixel. When theimage data is smaller than the threshold value, on the other hand, themethod specifies a dot-off state in the target pixel. This techniqueenables the dot on-off state of each target pixel to be specifiedimmediately after expansion of the image data including the targetpixel.

After specifying the dot on-off state in the target pixel, the modulestores the result of the specification in the drive buffer 261. Oncompletion of the processing with regard to one target pixel, the modulesets a new pixel as a next target pixel, executes the above series ofprocessing, and stores the result of the specification of the dot on-offstate in the drive buffer 261. When all the data representing rasterlines formed by one man scan of the head are stored in the drive buffer261 through the repetition of the above processing, the drive buffer 261outputs the control data to the ink ejection head to eject ink dropletsin the main scan of the carriage 240.

In the halftoning and interlacing process described above, it isrequired to store at least image data including those representingraster lines formed by one main scan, in the RAM. The halftoning andinterlacing process of this embodiment reads data of each target pixel,expands the data, and integrally carries out the halftoning process andthe interlacing process. The image data can thus be stored in the staterequiring expansion in the RAM. Even the color printer 200 having nolarge storage capacity can thus efficiently execute the halftoning andinterlacing process.

FIG. 13 is a flowchart showing a flow of the halftoning and interlacingprocess described above. This processing flow is executed by the controlcircuit 260 in the color printer 200. The processing flow is concretelydescribed according to this flowchart.

When the processing flow starts, the control circuit 260 first requeststhe computer 100 to transfer a preset quantity of intermediate data(step S200). As described previously with reference to FIG. 6, in thisembodiment, the computer 100 has completed the image processing up tocolor conversion. The computer 100 thus transfers the color-convertedimage data in the state requiring expansion. The processing of step S200stores the transferred intermediate data in the state requiringexpansion into the RAM. The transferred intermediate data may be storedinto the RAM without any processing or with some pre-processing.

The control circuit 260 then sets a target pixel (step S202). Here thetarget pixel represents an object pixel, for which the dot on-off stateis to be specified and the result of the specification is to be writteninto the drive buffer 261. The color printer 200 carries out printing inan adequate combination of interlacing, interlacing, and bi-directionalprinting, according to the printing conditions of each image. The orderof dot creation by the respective nozzles Nz in the ink ejection head isthus varied according to the printing conditions. The processing of stepS202 sets a target pixel by taking into account the order of dotcreation by the nozzles Nz according to the printing conditions.

The control circuit 260 reads out intermediate data including the targetpixel and expands the intermediate data (step S204). This step may readout data representing the whole raster line including the target pixelor may read out data representing only the target pixel.

For example, an origin is set at the upper left corner in an objectimage to be printed, and a target pixel is a pixel of an Nth row and anMth column. When the intermediate data transferred from the computer 100have gone through the run length compression, the procedure may read outand expand the intermediate data on the Nth row. The procedure mayotherwise analyze the intermediate data on the Nth row and read out onlya portion including the pixel on the Mth column. As another example,when the intermediate data at the resolution of 720 dpi are to beconverted into data at the resolution of 1440 dpi for printing, theprocedure may read out data representing the whole {int(N/4)+1}-thraster line among the intermediate data or may read out datarepresenting only a pixel of {int(N/4)+1}-th row and [int(M/4)+1]-thcolumn among the intermediate data. Here int(N) is an operator thatrounds down decimal places of N and takes only the integral part of N.The processing of step S204 expands the transferred and storedintermediate data to the level of pixels actually printed by the colorprinter 200.

The control circuit 260 specifies the dot on-off state in the targetpixel, based on the expanded data (step S206). In this embodiment, thedither method is applied to specify the dot on-off state in the targetpixel. The concrete procedure compares the image data of the targetpixel in the expanded data with a threshold value set at a positioncorresponding to the target pixel in a dither matrix. When the imagedata is greater than the threshold value, the procedure specifiescreation of a dot in the target pixel. When the image data is smallerthan the threshold value, on the other hand, the procedure specifiescreation of no dot in the target pixel.

After specifying the dot on-off state in the target pixel, the controlcircuit 260 writes the result of the specification at a correspondingarea in the drive buffer 261 (step S208). As described previously withreference to FIG. 5, areas in the drive buffer 261 are exclusivelyallocated to the respective nozzles. The result of the specification ofthe dot on-off state is thus stored in the area allocated to the nozzlecorresponding to the target pixel.

On completion of the processing with regard to one target pixel, thecontrol circuit 260 determines whether data representing the result ofspecification with regard to all the pixels to be formed in one mainscan of the carriage 240 have been stored in the drive buffer 261 (stepS210). When all the data for one pass have not yet been stored (stepS210: No), the control circuit 260 returns the processing to step S202to set a new target pixel and repeat the above series of processing.

Repetition of the series of processing implements storage of all thedata for one pass (step S210: Yes). As explained previously withreference to FIG. 6, the stored data are output as control data to theink ejection head. The control circuit 260 subsequently determineswhether printing has been completed (step S212). When printing has notyet been completed (step S216: No), the control circuit 260 returns theprocessing to step S200 to request the computer 100 to transfer a newset of intermediate data. When it is determined that printing has beencompleted (step S216: Yes), the control circuit 260 exits from thehalftoning and interlacing process shown in FIG. 13 and goes back to theimage processing routine shown in FIG. 6.

After return from the halftoning and interlacing process, the imageprocessing routine of FIG. 6 outputs the data stored in the drive buffer261 as control data in synchronism with the motion of the carriage 240.An image is accordingly printed on the printing medium.

As described above, in the image processing of this embodiment, theintermediate data received in the state requiring expansion from thecomputer 100 are stored in the state requiring expansion. The procedureof this embodiment reads out intermediate data including each targetpixel, specifies the dot on-off state in the target pixel, and storesthe result of the specification in the drive buffer 261. Even the colorprinter 200 having no large storage capacity can thus effectivelyexecute the halftoning process and the interlacing process. The computer100 and the color printer 200 can thus effectively share the series ofimage processing without restriction of the limited storage capacity ofthe color printer 200.

E. Modification

In the embodiment described above, the computer 100 executes the imageprocessing up to color conversion, and the color printer 200 executesthe halftoning process and the subsequent image processing. The share ofthe image processing is, however, not restricted to this arrangement.FIG. 14 conceptually shows one modified example.

In the modified example of FIG. 14, the computer 100 executes the colorconversion and the halftoning process. The halftoning process is notrestricted to the dither method described above, but any of otherdiverse methods may be adopted for halftoning. The processing power ofthe computer 100 is generally higher than the processing power of thecolor printer 200. The computer 100 thus ensures the high-speedhalftoning even by the error diffusion method that gives the highpicture quality but requires the higher processing power. After thehalftoning process, the image data are compressed by, for example, runlength compression and are transferred to the color printer 200.

The color printer 200 stores the transferred intermediate data in thestate requiring expansion and carries out the interlacing process of thestored intermediate data. The procedure sets a target pixel, expandsintermediate data including the target pixel, and stores the expandeddata with regard to the target pixel in the drive buffer. The procedureof this modified example does not require the color printer 200 to havea large storage capacity. The color printer 200 and the computer 100 canthus effectively share the series of image processing.

A software program (application program) that actualizes the abovefunctions may be supplied to a main memory or an external storage deviceof a computer system via a communication line and executed by thecomputer system. The software program may be read from a CD-ROM or aflexible disk and executed.

In the embodiment described above, dots of a fixed size are created onthe printing paper. The technique of the embodiment may be applied to aprinter that regulates the size of dots formed on printing paper, like avariable dot printer.

In the embodiment discussed above, the conversion of image data isexecuted by the computer. The conversion of image data may partly orwholly executed by the printer or an exclusive image processing device.

F. Outline of Image Processing in Second Embodiment

A second embodiment of the invention is described below. The printingsystem of the second embodiment corresponds to the mode shown in FIG. 1Band has the hardware construction identical with that of the firstembodiment. In the second embodiment, the control data used forcontrolling ejection of ink droplets are generated by a series of imageprocessing of an object image to be printed. FIG. 15 is a flowchartshowing a process of generating control data and printing an image(image printing process). As described below, in this embodiment, thefirst half of the image printing process is executed by the CPU built inthe computer 100, while the latter half of the image printing process isexecuted by the CPU built in the control circuit 260 of the printer 200.The outline of the image printing process is described below accordingto the flowchart of FIG. 15.

When the image printing process starts, the computer 100 first readsobject image data to be converted (step S1000) and executes colorconversion of the object image data (step S1020). The image data readingprocess and the color conversion process are similar to those of thefirst embodiment and are thus not specifically described here.

On completion of the color conversion, the computer 100 executesresolution conversion (step S104). The resolution conversion processconverts the resolution of image data into a resolution printable by theprinter 200 (printing resolution). The effective procedure for theenhanced printing quality reduces the size of each pixel and heightensthe printing resolution. The enhanced printing resolution, however, doesnot require an increase in resolution of original image data. In thecase of creating dots to print an image, each pixel takes only one ofthe two states, a dot-on state or a dot-off state. Some of the dotprinters may vary the size of dots or vary the density of ink used fordot creation, thus enabling expression of the greater number of states.Even such a dot printer has only several tone numbers expressible ineach pixel. The input image data of even 1 byte, on the other hand,enable expression of 256 tones. Since the expressible tone number ineach pixel is significantly different, setting the higher printingresolution than the resolution of the input image data enhances theprinting quality. Because of this reason, the resolution of the imagedata is converted into the higher printing resolution at step S1040 inthe flowchart of FIG. 15.

FIGS. 16A and 16B show an example of the resolution conversion executedin the first embodiment. As described previously, the color conversiongives image data of the respective colors C, M, Y, and K. The processingdescribed below is applied to the image data of any of these colors. Forthe simplicity of explanation, the color is not specified in thefollowing discussion.

FIG. 16A shows part of the color-converted image data. Each of multiplerectangles in FIG. 16A represents a pixel, and a numerical value in eachrectangle shows a tone value allocated to each pixel. The image datahave tone values allocated to the respective pixels arranged in lattice.An available method of heightening the resolution of the image dataexecutes interpolation to form new pixels between existing pixels. Thesimplest method adopted in this embodiment divides one pixel intomultiple smaller pixels to attain the resolution conversion.

FIG. 16B shows the conversion of resolution by division of pixels. Inthe illustrated example, each pixel is divided into four in the mainscanning direction (in the horizontal direction in the drawing) and intotwo in the sub-scanning direction (in the vertical direction in thedrawing). One pixel is accordingly divided into 8 pixels. The brokenlines in FIG. 16B show division of pixels. The tone value identical withthe tone value of the original pixel prior to division is allocated toeach of the small pixel divisions. This series of processing convertsthe resolution of the image data into the 4-fold resolution in the mainscanning direction and into the 2-fold resolution in the sub-scanningdirection. The increase rate of the resolution is set arbitrarilyaccording to the requirements.

After the conversion of the resolution of the image data into theprinting resolution, the computer 100 starts a number data generationprocess (step S1060 in the flowchart of FIG. 15). The number datageneration process is described briefly. The color-converted image datais the tone data having the tone values allocated to the respectivepixels. The printer 200 creates dots in pixels at adequate densitiesaccording to the tone values of the image data, so as to print an image.The tone data converted to the data representing the dot on-off state inthe respective pixels are thus to be transferred to the printer 200. Thesimple transfer of the data representing the dot on-off state in theunit of pixels to the printer 200 undesirably increases the transfertime with an increase in number of pixels. This prevents quick printingof an image. The image printing process of the embodiment thus collectsa preset number of multiple pixels into one pixel group and transfersdot number data representing the number of dots to be created in thepixel group to the printer 200. The dot number data representing thenumber of dots to be created in one pixel group are obtained byconverting the image data into the data representing the dot on-offstate in each pixel and collecting multiple pixels into one pixel group.The dot number data may alternatively be obtained by collecting multiplepixels into one pixel group and then specifying the number of dots to becreated in the respective pixels in the pixel group. The number datageneration process at step S1060 generates the dot number data (thenumber data) representing the number of dots to be created in the pixelgroup and transfers the generated number data to the printer 20. Thedetails of the number data generation process will be discussed later.

The CPU built in the control circuit 260 of the printer 200 receives thenumber data output from the computer 100 and starts a number datadecoding process (step S1080). The number data decoding process isdescribed briefly. The printer 200 prints an image, based on the datarepresenting the dot on-off state in each pixel, as describedpreviously. The computer 100 of the embodiment outputs the number datarepresenting the number of dots to be created in each pixel group,instead of the data representing the dot on-off state in each pixel. Itis accordingly required to convert the number data into the datarepresenting the dot on-off state in each pixel. In the specificationhereof, the data representing the dot on-off state in each pixel iscalled dot data. The method of converting number data into dot data willbe described later. The dot data thus obtained are output as controldata from the drive buffer 261 in synchronism with the main scans of theink ejection heads 244 through 247, so as to eject ink droplets andprint an image on the printing medium. The number data decoding processconverts the number data into dot data and outputs the dot data ascontrol data from the drive buffer 261 in synchronism with the mainscans of the ink ejection heads 244 through 247. As described later indetail, the number data decoding process of the embodiment does notsimultaneously convert all the number data in the respective pixelgroups to store all the dot data. But the number data decoding processof the embodiment takes into account the forward and backward scans ofthe head to convert the number data in multiple divisions and store thedot data. This arrangement desirably reduces the required memorycapacity of the printer 200, while ensuring quick conversion of numberdata into dot data and quick printing of an image.

For convenience of explanation, the description first regards the numberdata generation process and then the number data decoding process. Thereason why the number data decoding process reduces the required memorycapacity of the printer 200 will also be discussed.

G. Number Data Generation Process

FIG. 17 is a flowchart showing a flow of the number data generationprocess. The number data generation process is described according tothe flowchart.

The number data generation process first collects a preset number ofmultiple pixels into one pixel group (step S2000). The resolutionconversion process divides one pixel into eight small pixels. As anexample, the eight small pixels obtained by dividing one pixel are thuscollected into one pixel group. For example, the pixel at the upper leftcorner in FIG. 16A is divided into 2 in the vertical direction and into4 in the horizontal direction, thereby into 8 small pixels as shown inthe upper left corner of FIG. 16B. The processing of step S2000 thuscollects these eight pixels into one pixel group. The pixels collectedinto one pixel group may not be mutually adjoining pixels, but pixelshaving any preset positional relation may be collected into one pixelgroup.

When small pixels obtained by dividing one pixel are collected into onepixel group, the resolution conversion process may be omitted from theimage printing routine of FIG. 15. In this case, the term ‘pixel group’in the following description may be adequately replaced.

The number data generation process then sets one object pixel, for whichthe dot on-off state is to be specified (target pixel), among the pixelscollected into one pixel group (step S2020). The process subsequentlycompares the tone value allocated to the target pixel with a thresholdvalue in a dither matrix and thereby specifies the dot on-off state inthe target pixel (step S2040). Here the dither matrix is atwo-dimensional numerical table including multiple threshold valuesarranged in lattice. The process of specifying the dot on-off stateaccording to the dither matrix is described with reference to FIGS. 18and 19.

FIG. 18 shows part of a dither matrix. The illustrated dither matrixstores threshold values selected at random in the tone value range of 0to 255 and allocated to 64 pixels in both the vertical direction and thehorizontal direction, that is, a total of 4096 pixels. The thresholdvalue is selected in the tone value range of 0 to 255, since the imagedata is 1 byte data and takes the tone value in the tone value range of0 to 255 for each pixel in this embodiment. The size of the dithermatrix is not restricted to 64 pixels in the vertical direction and inthe horizontal direction. The dither matrix may have any of diversesizes and may include different number of pixels in the verticaldirection and in the horizontal direction.

FIG. 19 conceptually shows a process of referring to the dither matrixand specifying the dot on-off state in each target pixel. The dot on-offstate specification procedure first compares the tone value of eachtarget pixel with a threshold value stored at a position correspondingto the target pixel in the dither matrix. Each arrow of thin broken lineshows comparison between the tone value of each target pixel and athreshold value stored at the corresponding position in the dithermatrix. When the tone value of the target pixel is greater than thethreshold value in the dither matrix, the procedure specifies creationof a dot in the target pixel. When the tone value of the target pixel issmaller than the threshold value in the dither matrix, on the otherhand, the procedure specifies creation of no dot in the target pixel. Inthe illustrated example of FIG. 19, the tone value of the image data is97 in a pixel on the upper left corner, whereas the threshold valuestored at the corresponding position in the dither matrix is equal to 1.The tone value of the image data is greater than the threshold value, sothat creation of a dot is specified in this pixel. The arrow of solidline in FIG. 19 shows the process of specifying creation of a dot inthis pixel and writing the result of the specification into the memory.The tone value of the image data in a pixel on the right is 97, whilethe threshold value in the dither matrix is 177. The threshold value inthe dither matrix is greater than the tone value of the image data, sothat creation of no dot is specified in this pixel. The processing ofstep S2040 in the flowchart of FIG. 17 refers to the dither matrix andspecifies the dot on-off state in the target pixel.

It is determined whether the above series of processing has beenconcluded for all the pixels in the pixel group (step S2060). When thereis any non-processed pixel in the pixel group (step S2060: No), theprocess goes back to step S2020 and repeats the above series ofprocessing. When the processing has been concluded for all the pixels inthe pixel group (step S2060: Yes), the process detects the number ofdots to be created in the pixel group and stores the detected number ofdots to be mapped to the pixel group in the memory (step S2080). In theillustrated example of FIG. 19, creation of dots in three pixels isspecified with regard to the upper left pixel group of the image. Thenumber of dots ‘3’ is thus stored corresponding to this pixel group.

On completion of the processing with regard to one pixel group, it isthen determined whether the processing has been completed for all thepixels (step S2100). When there is any non-processed pixel, the processgoes back to step S2000 to generate a new pixel group, repeat the seriesof processing, and store the number of dots to be created in the newpixel group (step S2080). When this series of processing has beenrepeated and completed for all the pixels included in the image (stepS2100: Yes), the number data representing the number of dots stored ineach pixel group are output to the printer 200 (step S2120). The numberdata generation routine shown in FIG. 17 is then terminated.

FIG. 20A conceptually shows data obtained by the number data generationprocess of the image data. Each of multiple rectangles represents apixel group. The numeral in each pixel group shows storage of the numberof dots to be created in the pixel group. In this embodiment, thecomputer 100 converts the color-converted image data into the data shownin FIG. 20A and outputs only the number of dots stored in each pixelgroup as number data to the printer 200. Output of the number datadesirably reduces the quantity of data, compared with output of the datarepresenting the dot on-off state in each pixel (dot data). Thisarrangement thus ensures quick output. This advantage is described morein detail.

FIG. 20B shows specification of the dot on-off state in the respectivepixels in pixel groups. The thin broken lines in FIG. 20B show that eachpixel group consists of multiple pixels. The pixel filled with slantlines shows that creation of a dot is specified in the pixel.

The dot data shown in FIG. 20 are output from the computer 100 to theprinter 200. When there is only one type of dots, each pixel takeseither of only two states, the dot-on state or the dot-off state. Thedot data for one pixel accordingly requires one bit. Each pixel grouphas eight pixels. The dot data output to the printer 200 is accordingly8-bit data with respect to each pixel group.

The number of dots to be created in one pixel group is in a range of 0to 8. The number data is accordingly 4-bit data with respect to eachpixel group. Output of the number data reduces the quantity of data tohalf, compared with output of the dot data representing the dot on-offstate in each pixel. This is the number data generation (encoding)process. The number data are quickly output to the printer 200.

The number data transferred from the computer 100 are decoded by thecontrol circuit 260 in the printer 200 as described below. The numberdata are converted to the data representing the dot on-off state in eachpixel and are output as control data to the ink ejection heads 244through 247.

H. Number Data Decoding Process

FIG. 21 is a flowchart showing a flow of the number data decodingprocess executed in this embodiment. This processing flow is executed bythe CPU built in the control circuit 260 of the printer 200. The printer200 of this embodiment carries out this processing to convert the numberdata. This arrangement ensures quick decoding, while reducing therequired memory capacity of the printer 200. This processing flow isdescribed below according to the flowchart.

When the number data decoding process starts, the CPU of the controlcircuit 260 first reads the number data transferred from the computer100 (step S3000) and sets a printing pass (step S3020). The printer 200repeats the main scan and the sub-scan of each ink ejection head tocreate dots and thereby print an image on the printing paper.

As described previously with reference to FIG. 4, the ink ejection headhas multiple nozzles. One main scan of the ink ejection headsimultaneously creates dots by the multiple nozzles and forms multipleraster lines. These nozzles are arranged at the intervals of a nozzlepitch p. There is accordingly a gap corresponding to the nozzle pitch pbetween adjoining raster lines. Such gaps between the raster linesprevent reproduction of an image. The sub-scan is accordingly carriedout to gradually shift the positions of formation of raster lines andfill the gaps with raster lines. The terminology ‘pass’ means anoperation of main scan of the ink ejection head. The terminology‘printing pass’ represents an array of dots formed by one main scan ofthe head with ejection of ink droplets.

Mainly due to the requirement of the picture quality, each raster lineis formed not in only one pass but in multiple passes. In the case offormation of each raster line in one pass, a raster line is formed onpassage of a nozzle. Namely each raster line is formed by one nozzle. Inthis case, if multiple nozzles on the head include a nozzle havingdifferent characteristics from those of the other nozzles, a raster lineformed by the different nozzle is different from the other raster lines.The presence of such different raster lines among a large number ofraster lines may significantly deteriorate the picture quality. In thecase of formation of each raster line in multiple passes, on the otherhand, different nozzles are used in the different passes to create dots.This arrangement thus prevents such deterioration of picture quality.

FIG. 22 conceptually shows that the printer 200 carries out the sub-scanand forms raster lines in multiple passes to print an image. Asmentioned previously, the ink ejection head for each color has a numberof nozzles (48 nozzles for each color in this embodiment). For thesimplicity of explanation, it is assumed that the ink ejection head hasonly four nozzles in FIG. 22. The nozzle pitch is equal to 3, and eachraster line is completed by two main scans.

The left half of FIG. 22 shows gradual shifts of the position of the inkejection head relative to the printing paper by the sub-scan. Each longrectangle shown in the left half of FIG. 22 represents an ink ejectionhead for one color. A circle filled with slant line in the rectangleshows a nozzles Nz for ejecting an ink droplet. The ink ejection headfor each color has four nozzles, and the interval between adjoiningnozzles is set to a distance corresponding to two nozzles (a distancecorresponding to 3 times the diameter of the nozzle between the nozzlecenters).

The right half of FIG. 22 shows creation of dots on the printing paperby the main scan of the head. Each circle in the right half of FIG. 22represents a dot created on the printing paper. As described previouslywith reference to FIG. 3, the actual sub-scan feeds printing paper anddoes not move the ink ejection head in the sub-scanning direction. Forconvenience of explanation, the illustration of FIG. 22 simulatesmotions of the head relative to the printing paper.

In the printing process, the head carries out the main scan to createdots at a position (1). This main scan creates dots expressed by No. 1in the right half of FIG. 22 on the printing paper. The head is thenmoved in the sub-scanning direction by a distance corresponding to tworaster lines. The head is accordingly shifted to a position (2) shown inthe left half of FIG. 22. Each arrow of solid line in the left half ofFIG. 22 shows a motion of sub-scan of the head. After the sub-scan, thehead carries out the main scan again to create dots on the printingpaper. This main scan creates dots expressed by No. 2 in the right halfof FIG. 22 on the printing paper. The next sub-scan shifts the head to aposition (3), and the main scan of the head with ejection of inkdroplets creates dots expressed by No. 3. In this manner, the sub-scanand the main scan of the head are repeated to gradually move theposition of the head and create dots. The gaps between raster lines arefilled with other raster lines, and raster lines are formed without anygap in the subsequent area. In the illustrated example of FIG. 22,raster lines are formed without any gap on the printing paper in andafter the 5th pass. Namely the area of and after the 5^(th) pass is aneffective display area of the image.

The effective display area of FIG. 22 is examined closely. The 1^(st)raster line in this area consists of dots created in the 2nd pass anddots created in the 5^(th) pass (Namely this raster line is formed bytwo passes). A next raster line (the 2^(nd) raster line in the effectivedisplay area) consists of dots created in the 1^(st) pass and dotscreated in the 4^(th) pass. The 3^(rd) raster line in the effectivedisplay area consists of dots created in the 3^(rd) pass and dotscreated in the 6^(th) pass. Namely half of the dots on the 2^(nd) rasterline are created, before any dots are created on the 1^(st) raster linein the effective display area. Half of the dots on the 1^(st) rasterline are created, before the residual dots are created to complete the2^(nd) raster line. Half of the dots on the 3^(rd) raster line arecreated, while the 2^(nd) raster line and the 1^(st) raster line areincomplete. After creation of the respective halves of dots on the1^(st) to the 3^(rd) raster lines, the 2^(nd) raster line is completedin the 4^(th) pass. The 4^(th) pass creates half of the dots on the5^(th) raster line, while completing the 2^(nd) raster line. The 5^(th)pass completes the 1^(st) raster line and creates half of the dots onthe 4^(th) raster line. The 6^(th) pass complete the 3^(rd) raster lineand creates half of the dots on the 6^(th) raster line.

In this manner, the printer 200 does not sequentially create dots fromthe pixels at the edge of the effective display area of the image butcreates dots in a preset order like a mosaic pattern to complete aprinted image. The processing of step S3020 in the flowchart of FIG. 21accordingly sets a pass (printing pass) for dot creation. In the firstcycle of the number data decoding process shown in FIG. 21, the 1^(st)pass is set to the printing pass.

{A084}

The CPU then determines whether dot data of pixels (printing pixels), inwhich dots are created in the preset printing pass, have been generated(step S3040). The ink ejection head has multiple nozzles, and one passcreates dots in pixels on multiple lines. It is accordingly determinedwhether dot data corresponding to all such pixels are stored in the RAMof the control circuit 260. When the 1^(st) pass is set to the printingpass, no dot data have been generated yet. The answer at step S3040 is‘No’, and the CPU detects a pixel group including the printing pixels(step S3060). This process is described below with reference to FIG. 23.

FIG. 23 shows enlargement of the effective display area of the imageshown in FIG. 22. As described above with reference to FIG. 22, theprinting pixels in the 1^(st) pass are pixels of odd ordinal numbers onthe 2^(nd) line in the effective display area. In this embodiment, theimage data are treated in the unit of a pixel group, which includes 8pixels in two rows and 4 columns. Each rectangle of broken line in FIG.23 represents a pixel group treated as a unit. As shown in FIG. 23, theprinting pixels in the 1^(st) pass are included in pixel groups on aline (a). The processing of step S3060 in the flowchart of FIG. 21 thusdetects a pixel group on the line (a) as a pixel group includingprinting pixels.

The CPU decodes the number data of the detected pixel group and storesthe dot data of the printing pixels and subsequent pixels into thememory (step S3080). The ‘subsequent pixels’ represent pixels in thedetected pixels group, in which dots are created next to the printingpixels. As described above, the dots are created in a preset order likea mosaic pattern. The printing pixels and the subsequent pixels may notbe formed in consecutive passes like the 2^(nd) pass and the 3^(rd)pass. For example, when the pixels included in the detected pixel groupare formed in the 2^(nd) pass, the 4^(th) pass, the 5^(th) pass, and the7^(th) pass and the printing pixels are the pixels formed in the 2^(nd)pass, the subsequent pixels are the pixels formed in the 4^(th) pass.The process of storing the dot data of the printing pixels and thesubsequent pixels into the memory is described with reference to FIG.24.

FIG. 24 is a flowchart showing the process of storing the dot data ofthe printing pixels and the subsequent pixels into the memory (dot datageneration process). This processing flow is described below accordingto the flowchart.

The dot data generation process first obtains threshold values stored atpositions in a dither matrix corresponding to the respective pixelsincluded in an object pixel group to be processed (step S4000). Asdescribed previously, for the specification of the number of dots to becreated in one pixel group, the tone value of each target pixel iscompared with a threshold value set at the corresponding position in thedither matrix (see FIGS. 17 through 19). The procedure here readsthreshold values corresponding to the respective pixels included in theobject pixel group from the dither matrix.

The dot data generation process then determines pixels, in which dotsare to be created, in the object pixel group (step S4020). The pixelsfor dot creation in the object pixel group are determined, based on thethreshold values in the dither matrix read out corresponding to therespective pixels and the number data with regard to the object pixelgroup. This method is described with reference to a concrete exampleshown in FIGS. 25A through 25E.

FIG. 25A conceptually shows number data with regard to respective pixelgroups, which are received from the computer 100 and are stored in theRAM built in the control circuit 260 of the printer 200. The objectpixel group to be processed is an upper left pixel group in FIG. 25A.FIG. 25B conceptually shows the process of obtaining threshold valuesset at positions corresponding to the pixels in the object pixel groupfrom the dither matrix. The threshold values shown in FIG. 25B areregarded as potentials for dot creation in the object pixel group. Asdescribed previously with reference to FIG. 19, for the specification ofthe dot on-off state in one pixel, the tone value of the image data inthe pixel is compared with the corresponding threshold value in thedither matrix. When the tone value of the image data is greater than thethreshold value, it is determined that a dot is to be created in thepixel. The pixel having the smaller threshold value in the dither matrixshown in FIG. 25B has the higher potential for dot creation. Thethreshold value in the dither matrix is thus regarded as the potentialfor dot creation.

As shown in FIG. 25A, the number of dots to be created in the objectpixel group (the upper left pixel group) is 3 according to the numberdata. Dots are created in the order of the potentials shown in FIG. 25B.As shown in FIG. 25C, dots are thus created in a pixel of solid linehaving the smallest threshold value, in a pixel of broken line havingthe second smallest threshold value, and in a pixel of one-dot chainline having the third smallest threshold value. FIG. 25D conceptuallyshows a process of converting the number data and generating the dotdata with regard to the respective pixels in the object pixel group.

The processing of step S4020 in the flowchart of FIG. 24 converts thenumber data into dot data and thereby determines the pixels, in whichdots are to be created, in the object pixel group.

After conversion of the number data into dot data with regard to therespective pixels, the dot data of only the printing pixels and thesubsequent pixels are stored into the memory, that is, into the RAMbuilt in the control circuit 260 (step S4040). Here the 1^(st) pass isset to the printing pass. The printing pixels are pixels expressed by 1in FIG. 25E, that is, the left-end pixel and the second right pixel onthe lower row. The subsequent pixels are pixels expressed by 2, that is,the left-end pixel and the second right pixel on the upper row. Theprocessing of step S4040 in the flowchart of FIG. 24 stores dot data ‘0’for the printing pixels and dot data ‘1’ for the subsequent pixels. Thedot data ‘0’ means that no dot is created in the pixel, while the dotdata ‘1’ means that a dot is created in the pixel.

After storage of the dot data of the printing pixels and the subsequentpixels with regard to the object pixel group into the memory, the CPUterminates the dot data generation process shown in FIG. 24 and returnsto the number data decoding process shown in FIG. 21. For convenience ofexplanation, in the example of FIGS. 24 and FIGS. 25A through 25E, aftergeneration of dot data of all the pixels included in the object pixelgroup, the dot data of only the printing pixels and the subsequentpixels are stored into the memory. The procedure may not generate dotdata of all the pixels but may generate dot data of only the printingpixels and the subsequent pixels and store the dot data into the memory.

After return from the dot data generation process, the number datadecoding process shown in FIG. 21 reads the dot data of the printingpixels from the memory and outputs the dot data to the ink ejection head(step S3100). The concrete procedure writes the dots data read from theRAM into the drive buffer 261. According to this dot data, ink dropletsare ejected from the corresponding nozzles on the ink ejection head tocreate dots on the printing paper.

The CPU then determines whether the processing has been concluded forall the pixels (step S3120). Here only the dots in the 1^(st) pass havebeen created. The answer of the decision point is accordingly No, andthe CPU goes back to step S3020 to set the 2^(nd) pass to the printingpass and determines whether dot data of the pixels for dot creation inthe 2^(nd) pass have been generated (step S3040). As described above, inthe first cycle of the number data decoding routine, dot data of thesubsequent pixels as well as the printing pixels are stored in thememory. The processing of step S3040 thus determines whether the dotdata of new printing pixels, in which dots are to be created, havealready been stored in the memory.

As shown in FIGS. 22 and 23, the 2^(nd) pass creates dots in the pixelson the 1^(st) line and in the pixels on the 4^(th) line in the effectivedisplay area of the image. Dot data of the pixels on the 1^(st) linehave been generated and stored into the memory, simultaneously with thedot data of the printing pixels in the 1^(st) pass in the first cycle ofthe routine, whereas no dot data have been generated with regard to thepixels on the 4^(th) line. Namely all the dot data of the printingpixels for dot creation in the 2^(nd) pass have not bet been generated.The answer of step S3040 is accordingly No, and the CPU detects a nextobject pixel group including the printing pixels without the dot data(step S3060). Dot data have not yet been stored with regard to thepixels on the 4^(th) line in the effective display area, among theprinting pixels in the 2^(nd) pass. The processing of step S3060 thusdetects an object pixel group on a line ‘b’ in FIG. 26.

The CPU subsequently generates dot data of the printing pixels and thesubsequent pixels in the detected object pixel group and stores thegenerated dot data into the memory (step S3080). Here the printingpixels are pixels formed in the 2^(nd) pass. The subsequent pixels, thatis, the pixels for next dot creation in the object pixel group, arepixels in the 3^(rd) pass.

After storage of the dot data with regard to the printing pixels and thesubsequent pixels, the CPU outputs the dot data of the printing pass tothe ink ejection head for dot creation (step S3100) and determineswhether the processing has been completed for all the pixels (stepS3120). When there are any non-processed pixels, the CPU goes back tostep S3020 to set a new printing pass and determines whether all the dotdata for the printing pass have been generated (step S3040). When allthe dot data have been stored in advance (step S3040: Yes), the dot dataare output to the ink ejection head for dot creation (step S3100). Whenthere are any printing pixels without dot data (step S3040: No), on theother hand, the CPU detects a next object pixel group including theprinting pixels (step S3060) and stores dot data with regard to theprinting pixels and the subsequent pixels (step S3080).

When this series of processing is repeated and it is determined that theprocessing has been completed for all the pixels (step S3120: Yes), theCPU exits from the number data decoding process shown in FIG. 21 andterminates the image printing process shown in FIG. 15.

As described above, the number data decoding process of the embodimentconverts number data into dot data and stores the dot data of theprinting pixels and the subsequent pixels into the memory. Thisarrangement ensures quick conversion of the number data into dot data,while desirably reducing the required memory capacity of the printer200. The reason of such advantages is discussed below.

FIGS. 26A and 26B conceptually show the required memory capacity for dotdata of pixels obtained by decoding number data, when the ink ejectionhead repeats the main scan to create dots. The memory capacity requiredfor storage of the dot data is varied according to the pass of the head.In FIGS. 26A and 26B, for the simplicity of illustration, the memorycapacity corresponds to one pixel group among pixel groups on the line‘a’ in FIG. 23. FIG. 26A shows the memory capacity in the number datadecoding process of the embodiment. FIG. 26B shows simultaneous storageof dot data for all the pixels in the pixel group into the memory as areference.

As shown in FIG. 23, each pixel group on the line ‘a’ includes pixelswhere dots are formed in the 2^(nd) pass, pixels where dots are formedin the 4^(th) pass, and pixels where dots are formed in the 5^(th) pass,in addition to the pixels where dots are formed in the 1^(st) pass. Withregard to each pixel group on the line ‘a’, the number data are decodedimmediately before the main scan of the head in the 1^(st) pass. Asdescribed previously with reference to FIG. 21, the number data decodingprocess of the embodiment stores the dot data of the printing pixels andthe subsequent pixels. The dot data of the pixels in the 1^(st) pass andthe pixels in the 2^(nd) pass are thus simultaneously stored in thememory. In the example of FIG. 26A, the dot data corresponding to atotal of 4 pixels, that is, 2 pixels formed in the 1^(st) pass and 2pixels formed in the 2^(nd) pass, are once stored in the memoryimmediately before the main scan of the head in the 1^(st) pass. Themain scan in the 1^(st) pass supplies half the dot data corresponding to2 pixels to the head, and the main scan in the 2^(nd) pass supplies theresidual half of the dot data corresponding to the other 2 pixels to thehead.

After output of the dot data in the 1^(st) pass and in the 2^(nd) pass,the dot data corresponding to 4 pixels formed in the 4^(th) pass and inthe 5^(th) pass are stored into the memory immediately before the mainscan in the 4^(th) pass. The main scan in the 4^(th) pass supplies halfthe dot data corresponding to 2 pixels to the head, and the main scan inthe 5^(th) pass supplies the residual half of the dot data correspondingto the other 2 pixels to the head. With regard to each pixel group onthe line ‘a’ in FIG. 23, the memory capacity shown by slant lines inFIG. 26A is required for storage of the dot data.

In the case of storage of the dot data for all the pixels in the pixelgroup, on the other hand, dot data corresponding to 8 pixels are storedinto the memory immediately before the main scan in the 1^(st) pass, asshown in FIG. 26B. The main scan in the 1^(st) pass outputs dot datacorresponding to 2 pixels to the head, and the main scan in the 2^(nd)pass outputs dot data corresponding to another 2 pixels to the head.After the main scan of the head in the 2^(nd) pass, dot datacorresponding to 4 pixels, that is, dot data to be output to the head bythe main scan in the 4^(th) pass and in the 5^(th) pass, are stored inthe memory. The main scan in the 4^(th) pass outputs dot datacorresponding to 2 pixels to the head, and the main scan in the 5^(th)pass outputs dot data corresponding to the last 2 pixels to the head.

As clearly understood from the comparison between the area of slantlines in FIG. 26A and the area of slant lines in FIG. 26B, the imagedata decoding process of the embodiment significantly saves the requiredmemory capacity, compared with the process of storing dot data for allthe pixels in the pixel group. The image data decoding process of theembodiment also remarkably saves the maximum memory capacity requiredtemporarily.

With regard to the pixels on the line ‘a’ in FIG. 23, the printingpixels and the subsequent pixels are formed in consecutive passes, forexample, in the 1^(st) pass and in the 2^(nd) pass or in the 4^(th) passand in the 5^(th) pass. Immediately after creation of dots in theprinting pixels in one pass, dots are created in the subsequent pixelsin a next pass. The required memory capacity can be significantly savedeven when the printing pixels and the subsequent pixels are not formedin such consecutive passes. This is explained with an example of a pixelgroup on a line ‘g’ in FIG. 23.

FIGS. 27A and 27B conceptually show the required memory capacity for dotdata of pixels obtained by decoding number data with regard to eachpixel group on the line ‘g’ in FIG. 23. FIG. 27A shows the memorycapacity in the number data decoding process of the embodiment. FIG. 27Bshows simultaneous storage of dot data for all the pixels in the pixelgroup into the memory as a reference.

As shown in FIG. 23, each pixel group on the line ‘g’ includes pixelswhere dots are formed in the 7^(th) pass, pixels where dots are formedin the 10^(th) pass, pixels where dots are formed in the 11^(th) pass,and pixels where dots are formed in the 14^(th) pass. With regard toeach pixel group on the line ‘g’, the number data are decodedimmediately before the main scan of the head in the 7^(th) pass.

As described previously with reference to FIG. 21, the number datadecoding process of the embodiment stores the dot data corresponding toa total of 4 pixels, that is, printing pixels where dots are created inthe 7^(th) pass and subsequent pixels where dots are created in the10^(th) pass, into the memory. As shown in FIG. 27A, the dot datacorresponding to 4 pixels are stored into the memory immediately beforethe main scan in the 7^(th) pass. The man scan in the 7^(th) passoutputs dot data corresponding to 2 pixels to the head, and the mainscan in the 10^(th) pass outputs dot data corresponding to the other 2pixels to the head.

On completion of the main scan in the 10^(th) pass, the dot datacorresponding to a total of 4 pixels formed in the 11^(th) pass and inthe 14^(th) pass are stored into the memory immediately before the mainscan in the 11^(th) pass. The main scan in the 11^(th) pass outputs dotdata corresponding to 2 pixels to the head, and the main scan in the14^(th) pass outputs dot data corresponding to the other 2 pixels to thehead. With regard to each pixel group on the line ‘g’ in FIG. 23, thememory capacity shown by the slant lines in FIG. 27A is required for dotcreation.

In the case of storage of the dot data for all the pixels in the pixelgroup, on the other hand, dot data corresponding to 8 pixels are storedinto the memory immediately before the main scan in the 7^(th) pass, asshown in FIG. 27B: The main scan in the 7^(th) pass outputs dot datacorresponding to 2 pixels to the head, and the main scans in the 10^(th)pass, in the 11^(th) pass, and in the 14^(th) pass respectively outputdot data corresponding to another 2 pixels to the head. The memorycapacity shown by the slant lines in FIG. 27B is thus required forstorage of dot data for all the pixels.

As clearly understood from the comparison between the area of slantlines in FIG. 27A and the area of slant lines in FIG. 27B, the imagedata decoding process of the embodiment significantly saves the requiredmemory capacity.

Storage of dot data corresponding to only printing pixels further savesthe memory capacity. But this method is required to decode the numberdata and write the dot data of printing pixels into the memory in eachmain scan of the head. This method thus undesirably lowers theprocessing speed. The procedure of this embodiment, on the other hand,is not required to decode the number data and write the dot data intothe memory in each main scan of the head. This arrangement thus ensuresquick conversion of number data into dot data.

The image data decoding process of the embodiment ensures the quickprocessing while saving the memory capacity, since the process of theembodiment does not simultaneously store dot data for all the pixelsincluded in one pixel group but stores dot data of only printing pixelsand other selected pixels. The process of the embodiment described abovesimultaneously stores dot data of the printing pixels and dot data ofthe subsequent pixels for next dot creation into the memory. The effectsof the embodiment are, however, not restricted to this arrangement.Instead of storage of dot data corresponding to two passes, theprocedure may simultaneously store dot data corresponding to anarbitrary number of passes, which is less than the total number ofpasses included in the pixel group. Dot data corresponding to only onepass may be stored, instead of dot data corresponding to multiplepasses. In such cases, the procedure significantly saves the requiredmemory capacity, compared with simultaneous storage of dot datacorresponding to all the passes.

When the pixels selected for storage of dot data simultaneously with theprinting pixels are pixels where dots are created at the closer timingto the printing pixels in the pixel group, this enhances the effect ofsaving the memory capacity.

The embodiments discussed above are to be considered in all aspects asillustrative and not restrictive. There may be many modifications,changes, and alterations without departing from the scope or spirit ofthe main characteristics of the present invention. For example, asoftware program (application program) that actualizes the abovefunctions may be supplied to a main memory or an external storage deviceof a computer system via a communication line and executed by thecomputer system. The software program may be read from a CD-ROM or aflexible disk and executed.

1. A printing system that eventually converts original image data to beprinted into dot data as data in unit of dots and prints an image inunit of raster lines as arrays of dots created according to the dotdata, said printing system comprising: a print head that has multipledot formation elements to create dots on a printing a print head controlmodule that prints each raster line included in the image by at leasttwo dot formation elements; an image data conversion module thatconverts the original image data into convened data, which is in a formprior to expansion into dot data corresponding to the multiple dotformation elements and is in a more compressed form than the dot data; aconvened data storage module that stores the convened data; a dataexpansion module that successively reads out the stored convened dataand expands the converted data into dot data for actuating the multipledot formation elements; and an output module that outputs the expandeddot data to said print head control module, wherein said image dataconversion module collects a preset number of multiple pixels in theimage into each pixel group and specifies a number of dots to be createdin each pixel group based on the image data, so as to obtain theconvened data, said convened data storage module stores datarepresenting the specified number of dots to be created in each pixelgroup as the convened data, and said data expansion module converts thestored data representing the specified number of dots into the dot dataand comprises a dot data storage module, which simultaneously stores theconverted dot data at least once with respect to M pixel sets includedin each pixel group, where M is an integer of not less than 2 but ofless than N, which is a total number of pixel sets included in the pixelgroup.
 2. A printing system that eventually converts original image datato be printed into dot data as data in unit of dots and prints an imagein unit of raster lines as arrays of dots created according to the dotdata, said printing system comprising: a print head that has multipledot formation elements to create dots on a printing medium; a print headcontrol module that prints each raster line included in the image by atleast two dot formation elements; an image data conversion module thatconverts the original image data into converted data, which is in a formprior to expansion into dot data corresponding to the multiple dotformation elements and is in a more compressed form than the dot data; aconverted data storage module that stores the converted data; a dataexpansion module that successively reads out the stored converted dataand expands the converted data into dot data for actuating the multipledot formation elements; and an output module that outputs the expandeddot data to said print head control module, wherein said image dataconversion module collects a preset number of multiple pixels in theimage into each pixel group and specifies a number of dots to be createdin each pixel group based on the image data, so as to obtain theconverted data, said converted data storage module stores datarepresenting the specified number of dots to be created in each pixelgroup as the converted data, said data expansion module converts thestored data representing the specified number of dots into the dot dataand comprises a dot data storage module, which simultaneously stores theconverted dot data at least once with respect to M pixel sets includedin each pixel group, where M is an integer of not less than 2 but ofless than N, which is a total number of pixel sets included in the pixelgroup, and said dot data storage module simultaneously stores dot datawith respect to at least multiple pixel sets, in which dots areconsecutively created in the pixel group, as the dot data with respectto the M pixel sets.
 3. A printing system that eventually convertsoriginal image data to be printed into dot data as data in unit of dotsand prints an image in unit of raster lines as arrays of dots createdaccording to the dot data, said printing system comprising: a print headthat has multiple dot formation elements to create dots on a printing aprint head control module that prints each raster line included in theimage by at least two dot formation elements; an image data conversionmodule that converts the original image data into converted data, whichis in a form prior to expansion into dot data corresponding to themultiple dot formation elements and is in a more compressed form thanthe dot data; a converted data storage module that stores the converteddata; a data expansion module that successively reads out the storedconverted data and expands the converted data into dot data foractuating the multiple dot formation elements; and an output module thatoutputs the expanded dot data to said print head control module, whereinsaid image data conversion module collects a preset number of multiplepixels in the image into each pixel group and specifies a number of dotsto be created in each pixel group based on the image data, so as toobtain the converted data, said converted data storage module storesdata representing the specified number of dots to be created in eachpixel group as the converted data, said data expansion module convertsthe stored data representing the specified number of dots into the dotdata and comprises a dot data storage module, which simultaneouslystores the converted dot data at least once with respect to M pixel setsincluded in each pixel group, where M is an integer of not less than 2but of less than N, which is a total number of pixel sets included inthe pixel group, and said dot data storage module simultaneously storesdot data with respect to at least multiple pixel sets, which are left atlast in the pixel group, as the dot data with respect to the M pixelsets.
 4. A printing system that eventually converts original image datato be printed into dot data as data in unit of dots and prints an imagein unit of raster lines as arrays of dots created according to the dotdata, said printing system comprising: a print head that has multipledot formation elements to create dots on a printing a print head controlmodule that prints each raster line included in the image by at leasttwo dot formation elements; an image data conversion module thatconverts the original image data into converted data, which is in a formprior to expansion into dot data corresponding to the multiple dotformation elements and is in a more compressed form than the dot data; aconverted data storage module that stores the converted data; a dataexpansion module that successively reads out the stored converted dataand expands the converted data into dot data for actuating the multipledot formation elements; and an output module that outputs the expandeddot data to said print head control module, wherein said image dataconversion module collects a preset number of multiple pixels in theimage into each pixel group and specifies a number of dots to be createdin each pixel group based on the image data, so as to obtain theconverted data, said converted data storage module stores datarepresenting the specified number of dots to be created in each pixelgroup as the converted data, said data expansion module converts thestored data representing the specified number of dots into the dot dataand comprises a dot data storage module, which simultaneously stores theconverted dot data at least once with respect to M pixel sets includedin each pixel group, where M is an integer of not less than 2 but ofless than N, which is a total number of pixel sets included in the pixelgroup, and said dot data storage module converts the number data intothe dot data in an order of pixels having potential for dot creation inthe pixel group and stores the dot data.
 5. A printing device thatreceives data corresponding to an object image to be printed fromoutside of the printing device and creates dots on a printing medium, soas to print the object image according to the received data, saidprinting device comprising: a print head that has multiple dot formationelements to create dots on the printing medium; a print head controlmodule that prints each raster line included in the image by at leasttwo dot formation elements; a converted data storage module that storesconverted data, which is obtained by converting the object image in aform prior to expansion into dot data corresponding to the multiple dotformation elements and in a more compressed form than the dot data; adata expansion module that successively reads out the stored converteddata and expands the converted data into dot data for actuating themultiple dot formation elements; and an output module that outputs theexpanded dot data to said print head control module, wherein saidconverted data storage module stores data representing a specifiednumber of dots to be created in each pixel group as the converted data,where a preset number of multiple pixels in the image are collected intoeach pixel group and the number of dots to be created in each pixelgroup is specified based on the image data, and said data expansionmodule converts the stored data representing the specified number ofdots into the dot data and comprises a dot data storage module, whichsimultaneously stores the converted dot data at least once with respectto M pixel sets included in each pixel group, where M is an integer ofnot less than 2 but of less than N, which is a total number of pixelsets included in the pixel group.
 6. A printing method that eventuallyconverts original image data to be printed into dot data as data in unitof dots and actuates multiple dot formation elements mounted on a printhead according to the dot data, so as to create dots on a printingmedium and print an image in unit of raster lines as arrays of dots,said printing method comprising the steps of: converting the originalimage data into convened data, which is in a form prior to expansioninto dot data corresponding to the multiple dot formation elements andis in a more compressed form than the dot data; storing the converteddata into a memory; successively reading out the stored convened dataand expanding the convened data into dot data for actuating the multipledot formation elements; arranging the expanded dot data to make eachraster line included in the image formed by at least two dot formationelements; and actuating the dot formation elements on the print head,based on the arranged dot data, wherein said storing step stores datarepresenting a specified number of dots to be created in each pixelgroup in the memory as the converted data, where a preset number ofmultiple pixels in the image are collected into each pixel group and thenumber of dots to be created in each pixel group is specified based onthe image data, and said expanding step converts the stored datarepresenting the specified number of dots into the dot data andsimultaneously stores the convened dot data at least once with respectto M pixel sets included in each pixel group, where M is an integer ofnot less than 2 but of less than N, which is a total number of pixelsets included in the pixel group.
 7. A printing method that eventuallyconverts original image data to be printed into dot data as data in unitof dots and actuates multiple dot formation elements mounted on a printhead according to the dot data, so as to create dots on a printingmedium and print an image in unit of raster lines as arrays of dots,said printing method comprising the steps of: storing converted data ina memory, where the converted data is obtained by converting theoriginal image data in a form prior to expansion into dot datacorresponding to the multiple dot formation elements and in a morecompressed form than the dot data; successively reading out the storedconvened data and expanding the convened data into dot data foractuating the multiple dot formation elements; arranging the expandeddot data to make each raster line included in the image formed by atleast two dot formation elements; and actuating the dot formationelements on the print head, based on the arranged dot data, wherein saidstoring step stores data representing a specified number of dots to becreated in each pixel group in the memory as the converted data, where apreset number of multiple pixels in the image are collected into eachpixel group and the number of dots to be created in each pixel group isspecified based on the image data, and said expanding step converts thestored data representing the specified number of dots into the dot dataand simultaneously stores the convened dot data at least once withrespect to M pixel sets included in each pixel group, where M is aninteger of not less than 2 but of less than N, which is a total numberof pixel sets included in the pixel group.